package com.platform.base.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.base.domain.MeterInfo;
import com.platform.base.domain.ValveInfo;

/**
 * 热信息Service接口
 * 
 * @author wangqi
 * @date 2020-09-26
 */
public interface IMeterInfoService extends IService<MeterInfo>
{
    /**
     * 查询热信息列表
     * 
     * @param meterInfo 热信息
     * @return 热信息集合
     */
    public List<MeterInfo> selectMeterInfoList(MeterInfo meterInfo);

    /**
     * 查询热信息列表
     *
     * @return 热信息集合
     */
    public List<MeterInfo> selectCollectorInfoEq();

    /**
     * 查询热信息列表
     *
     * @return 热信息集合
     */
    public List<MeterInfo> selectMeterInfoEq(String collectorId);
    /**
     * 查询热信息列表
     *
     * @param locationId 热信息
     * @return 热信息集合
     */
    public List<MeterInfo> selectMeterInfoBylocationId(String locationId);

    /**
     * 查询热表信息
     *
     * @param meterId 热表Id
     * @return 热表信息
     */
    public MeterInfo selectMeterInfoById(String meterId);

    /**
     * 新增热信息
     * 
     * @param meterInfo 热信息
     * @return 结果
     */
    public int insertMeterInfo(MeterInfo meterInfo);

    /**
     * 修改热信息
     * 
     * @param meterInfo 热信息
     * @return 结果
     */
    public int updateMeterInfo(MeterInfo meterInfo);

    /**
     * 批量删除热信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMeterInfoByIds(String ids);

    /**
     * 校验热表是否唯一
     *
     * @param meterInfo 热表信息
     * @return 结果
     */
    public String checkMeterUnique(MeterInfo meterInfo);

    /**
     * 根据采集器ID更新热表登记状态
     *
     * @param collectorId 采集器信息
     * @return 结果
     */
    public int updateMeterInfoByCollectorId(String collectorId);

    /**
     * 导入热表信息
     *
     * @param infoList 热表信息
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importInfo(List<MeterInfo> infoList, Boolean isUpdateSupport, String operName);

    /**
     * 热表登记
     *
     * @param meterIds 热表信息
     * @param operName 操作用户
     * @return 结果
     */
    public String registerInfo(String[] meterIds, String operName) throws InterruptedException;

    /**
     * 热表注销
     *
     * @param meterIds 热表信息
     * @param operName 操作用户
     * @return 结果
     */
    public String cancelInfo(String[] meterIds, String operName) throws InterruptedException;

    /**
     * 热表数据采集
     *
     * @param meterIds 热表信息
     * @return 结果
     */
    public String checkInfo(String[] meterIds) throws InterruptedException;


}
